#!/bin/bash
# \author lso1213

#attivazioni erronee server
# mancano argomenti
if ./brsserver ; then
    exit 1
fi

# file inisistente
if ./brsserver __file__ ; then
    exit 1
fi

# troppi argomenti
if ./brsserver __f1 __f2 __f3; then
    exit 1
fi


# attivazioni erronee client
# argomenti errati
if ./brsclient ; then
    exit 1 
fi


# argomenti errati
if ./brsclient pippo ; then
    exit 1
fi

# argomenti errati
if ./brsclient pippo pluto e paperone ; then
    exit 1
fi

# opzione errata (mancano argomenti)
if ./brsclient -c ; then
    exit 1
fi

# opzione replicata
if  ./brsclient pluto -c passwo -r ; then
    exit 1
fi

# attivo il server
./brsserver users1.txt &

# test registrazioni e cancellazioni
./brsclient plutoXXX baubau -r #rifiutato
./brsclient cicciobello jkloh99 -r  #accettato
./brsclient cicciobello jkloh99 -c  #accettato
./brsclient cicciobello jkloh99 -c  #rifiutato utente inesistente
./brsclient cicciobello jkloh99 -r  #accettato
./brsclient plutoXXX baubau -c  #accettato
./brsclient plutoXXX baubau -c  #rifiutato utente inesistente

sleep 1

# richiedo scrittura file brs.checkpoint
killall -USR1 brsserver

sleep 1




# richiedo e attendo la terminazione del server
# a questo punto deve essere ancora attivo
if killall -w brsserver ; then
    echo OK server ancora attivo 1>&2
else
    exit 1
fi

sleep 1

# a questo punto i client devono essere terminati
if ! killall -w brsclient ; then
    echo OK client terminati 1>&2
else
    exit 1
fi


exit 0



